package com.skyhigh.web.webservice.domain;

// Generated 26/03/2012 11:56:15 PM by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Proxy;

/**
 * Carga generated by hbm2java
 */
@Entity
@Table(name = "carga", catalog = "proyecto_metodologia")
@TableGenerator(name="generatorName", 
table="secuencia",  
pkColumnName="codigo",  
pkColumnValue = "Carga.id",
valueColumnName="valor",  
allocationSize=100)
@Proxy( lazy=false )
public class Carga implements java.io.Serializable {

	private Integer idCarga;
	private Documento documento;
	private Pais paisDestino;
	private Transportista transportista;
	private TipoMovimiento tipoMovimiento;
	private Pais paisProcedencia;
	private Cliente cliente;
	private Bodega bodega;
	private Date fechaIngreso;
	private Date fechaSalida;
	private Double volumen;

	public Carga() {
	}

	public Carga(Integer idCarga, Documento documento, Pais paisDestino,
			Transportista transportista, TipoMovimiento tipoMovimiento,
			Pais paisProcedencia, Cliente cliente, Bodega bodega,
			Date fechaIngreso, Double volumen) {
		this.idCarga = idCarga;
		this.documento = documento;
		this.paisDestino = paisDestino;
		this.transportista = transportista;
		this.tipoMovimiento = tipoMovimiento;
		this.paisProcedencia = paisProcedencia;
		this.cliente = cliente;
		this.bodega = bodega;
		this.fechaIngreso = fechaIngreso;
		this.volumen = volumen;
	}

	public Carga(Integer idCarga, Documento documento, Pais paisDestino,
			Transportista transportista, TipoMovimiento tipoMovimiento,
			Pais paisProcedencia, Cliente cliente, Bodega bodega,
			Date fechaIngreso, Date fechaSalida, Double volumen) {
		this.idCarga = idCarga;
		this.documento = documento;
		this.paisDestino = paisDestino;
		this.transportista = transportista;
		this.tipoMovimiento = tipoMovimiento;
		this.paisProcedencia = paisProcedencia;
		this.cliente = cliente;
		this.bodega = bodega;
		this.fechaIngreso = fechaIngreso;
		this.fechaSalida = fechaSalida;
		this.volumen = volumen;
	}

	@Id
	@Column(name = "idCarga", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.TABLE, generator="generatorName")
	public Integer getIdCarga() {
		return this.idCarga;
	}

	public void setIdCarga(Integer idCarga) {
		this.idCarga = idCarga;
	}
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idDocumento", nullable = false)
	public Documento getIdDocumento() {
		return this.documento;
	}

	public void setIdDocumento(Documento documento) {
		this.documento = documento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idPaisDestino", nullable = false)
	public Pais getIdPaisDestino() {
		return this.paisDestino;
	}

	public void setIdPaisDestino(Pais paisDestino) {
		this.paisDestino = paisDestino;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idTransportista", nullable = false)
	public Transportista getIdTransportista() {
		return this.transportista;
	}

	public void setIdTransportista(Transportista transportista) {
		this.transportista = transportista;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idTipoMovimiento", nullable = false)
	public TipoMovimiento getIdTipoMovimiento() {
		return this.tipoMovimiento;
	}

	public void setIdTipoMovimiento(TipoMovimiento tipoMovimiento) {
		this.tipoMovimiento = tipoMovimiento;
	}
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idPaisProcedencia", nullable = false)
	public Pais getIdPaisProcedencia() {
		return this.paisProcedencia;
	}

	public void setIdPaisProcedencia(Pais paisProcedencia) {
		this.paisProcedencia = paisProcedencia;
	}
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idCliente", nullable = false)
	public Cliente getIdCliente() {
		return this.cliente;
	}

	public void setIdCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idBodega", nullable = false)
	public Bodega getIdBodega() {
		return this.bodega;
	}

	public void setIdBodega(Bodega bodega) {
		this.bodega = bodega;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "fechaIngreso", nullable = false, length = 19)
	public Date getFechaIngreso() {
		return this.fechaIngreso;
	}

	public void setFechaIngreso(Date fechaIngreso) {
		this.fechaIngreso = fechaIngreso;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "fechaSalida", length = 19)
	public Date getFechaSalida() {
		return this.fechaSalida;
	}

	public void setFechaSalida(Date fechaSalida) {
		this.fechaSalida = fechaSalida;
	}

	@Column(name = "volumen", nullable = false, precision = 22, scale = 0)
	public Double getVolumen() {
		return this.volumen;
	}

	public void setVolumen(Double volumen) {
		this.volumen = volumen;
	}

}
